package com.zjw.algorithm;


import com.zjw.algorithm.utils.ListNode;
import com.zjw.algorithm.utils.Utils;

/***
 *
 * 给你一个单链表的头节点 head ，请你判断该链表是否为回文链表。如果是，返回 true ；否则，返回 false 。
 *
 *
 * */
public class Solution7 {

    public static void main(String[] args) {
        System.out.println(new Solution7().isPalindrome(Utils.asNodeList(new int[]{1, 2, 3, 4, 5, 4, 3, 2, 1})));
    }

    public boolean isPalindrome(ListNode head) {

        ListNode copy = Utils.copy(head);
        ListNode reverse = Utils.reverse(copy);

        while (head != null) {
            if (head.val != reverse.val) {
                return false;
            }

            reverse = reverse.next;
            head = head.next;
        }
        return true;
    }
}
